<?php


function list_kontrak(){
	my_set_code_js('
		function confirmDelete(id){
			var t = confirm(\'Yakin akan menghapus data ?\');
			if(t){
				location.href=\'index.php?com='.$_GET['com'].'&task=delete&id=\'+id;
			}
			return false;
		}
	');
	$header = array(
		'#'=>array('style'=>'text-align:center;border-bottom:2px solid;width:5%'),  
		'NIK'=>array('style'=>'border-bottom:2px solid;width:15%'),  
		'Nama Karyawan'=>array('style'=>'border-bottom:2px solid;width:25%'),  
		'Ke'=>array('style'=>'border-bottom:2px solid;width:5%'),  
		'Tgl Mulai'=>array('style'=>'border-bottom:2px solid;width:10%'),  
		'Tgl Selesai'=>array('style'=>'text-align:center;border-bottom:2px solid;width:10%'),  
		'Jabatan'=>array('style'=>'border-bottom:2px solid;width:25%'),  
		' '=>array('style'=>'border-bottom:2px solid;width:5%'), 
	);

	$query = "SELECT * FROM kontrak  
	 ";
	$result = my_query($query );
	$total_records = my_num_rows($result );
	$scroll_page =5;  
	$per_page =25;  
	$current_page = isset($_GET['page']) ? (int) $_GET['page'] : 1 ; 
	if($current_page < 1){
		$current_page = 1;
	}		 
	$pager_url  ="index.php?com={$_GET['com']}&task={$_GET['task']}&field={$_GET['field']}&key={$_GET['key']}&page=";	 
	$inactive_page_tag = 'style="padding:4px;background-color:#BBBBBB"';  
	$previous_page_text = ' Mundur '; 
	$next_page_text = ' Maju ';  
	$first_page_text = ' Awal '; 
	$last_page_text = ' Akhir ';
	
	$kgPagerOBJ = new kgPager();
	$kgPagerOBJ->pager_set(
		$pager_url, 
		$total_records, 
		$scroll_page, 
		$per_page, 
		$current_page, 
		$inactive_page_tag, 
		$previous_page_text, 
		$next_page_text, 
		$first_page_text, 
		$last_page_text ,$pager_url_last); 
	 		
	$result = my_query($query ." LIMIT ".$kgPagerOBJ->start.", ".$kgPagerOBJ->per_page); 	
	$row = array(); 
	$i = ($current_page  - 1 ) * 25; 
	while($ey = my_fetch_array($result)){
		$i++;
		$editproperty = array(
			'href'=>'index.php?com=kontrak&task=edit&id='.$ey['kontrak_id'],
			'rel'=>'facebox',
			'title'=>'Edit'
		);
		$edit_button = button_icon( 'b_edit.png' , $editproperty  );

		$deleteproperty = array(
			'href'=>'javascript:; ',
			'onclick'=>'javascript:confirmDelete('.$ey['kontrak_id'].');',
			'title'=>'Delete'
		);
		$delete_button = button_icon( 'b_drop.png' , $deleteproperty  );
		$karyawan = loaddata_karyawan($ey['karyawan_id']);
		$jabatan = loaddata_jabatan($ey['jabatan_id']);
		$row[] = array(
			'#'=>position_text_align ($i, 'center'), 
			'nik'=>  $karyawan['nik'] ,
			'nama'=>  $karyawan['nama_gelar'] ,
			'ke'=>  $ey['kontrak_ke'] ,
			'tgl_m'=>  date( 'd-m-Y' , strtotime($ey['tanggal_mulai']) ) ,  
			'tgl_s'=>  date( 'd-m-Y' , strtotime($ey['tanggal_selesai']) ) ,  
			'jabatan'=>  $jabatan['nama_jabatan'] ,
			'ops'=> position_text_align(  $edit_button.' '.$delete_button , 'right'),  
		);
		 
	}
	
	$datas = table_rows($row); 
	$menuontop = array(  
		'Tambah data'=>array('onclick'=>'javascript: jQuery.facebox({ ajax: \'index.php?com=kontrak&task=edit\' });'),
	);
	$printmenu = additional_menu_on_list( $menuontop , '');
	$paging = $kgPagerOBJ ->showPaging();
	return $printmenu .table_builder($header , $datas ,  8 , false ,$paging );
} 

function form_kontrak_create( $id ){
	my_set_file_js(
		array(
			'components/system/jquery/combomulti/jquery.chainedSelects.js',
			'components/system/js/calendar/calendarDateInput.js' 
		)
	);
	
	my_set_file_js(
		array(
			'components/system/jquery/autocomplete/jquery.autocomplete.js'  
		)
	);
	my_set_file_css(
		array(
				'components/system/jquery/autocomplete/jquery.autocomplete.css' 
			)
	);

	my_set_code_js('  
		function findValue(li) {
			if( li == null ) return alert("No match!"); 
			if( !!li.extra ) var sValue = li.extra[0]; 
			else var sValue = li.selectValue;
		}

		function selectItem(li) {
			findValue(li);
		}

		function formatItem(row) {
			return   row[0] ;
		}

		function lookupAjax(){
			var oSuggest = $("#nama_karyawan")[0].autocompleter;
			oSuggest.findValue(); 
			return false;
		}
		$(document).ready(function() {
			$("#nama_karyawan").autocomplete(
				"autocomplete_daftar_karyawan_perpanjangan_kontrak.php",
				{
					delay:10,
					minChars:2,
					matchSubset:1,
					matchContains:1,
					cacheLength:5,
					onItemSelect:selectItem,
					onFindValue:findValue,
					formatItem:formatItem,
					autoFill:true
				}
			);
			 
		});

		function checkName(name){
			$.get("check_karyawan_names.php", { nama: name  },
			   function(data){
				 if(data ==  \'0\' ){
					alert(\'Nama karyawan \'+ name+\' tidak ditemukan\nHarap diperiksa kembali\');
					$(\'#nama_karyawan\').val(\'\');
					return false;
				 } 
			   });
		}
	');

	my_set_code_js('  
		function findValue(li) {
			if( li == null ) return alert("No match!"); 
			if( !!li.extra ) var sValue = li.extra[0]; 
			else var sValue = li.selectValue;
		}

	function selectItem(li) {
		findValue(li);
	}

	function formatItem(row) {
		return   row[0] ;
		}
 
	$(document).ready(function() {
		$("#nama_jabatan").autocomplete(
			"autocomplete_daftar_jabatan.php",
			{
				delay:10,
				minChars:2,
				matchSubset:1,
				matchContains:1,
				cacheLength:5,
				onItemSelect:selectItem,
				onFindValue:findValue,
				formatItem:formatItem,
				autoFill:true
			}
		);
	});

	function checkNameJabatan(name){
		$.get("check_jabatan_names.php", { nama: name  },
		function(data){
			if(data ==  \'0\' ){
				alert(\'Jabatan \'+ name+\' tidak ditemukan\nHarap diperiksa kembali\'); 
				$(\'#nama_jabatan\').val(\'\');
				return false;
			} 
		});
	}
	');

	$view = form_header( "seleski" , "seleski"  );
 	$fields = my_get_data_by_id('kontrak','kontrak_id',$id);
	$ftanggalm = $ftanggals = $ftanggalk = date('d-m-Y');
	if($fields){
		list($yyyytanggalm , $mmtanggalm,$ddtanggalm ) = explode("-" ,$fields['tanggal_mulai'] );
		list($yyyytanggals , $mmtanggals,$ddtanggals ) = explode("-" ,$fields['tanggal_selesai'] );
		list($yyyytanggalk , $mmtanggalk, $ddtanggalk ) = explode("-" ,$fields['tanggal_surat'] );
		$ftanggalm = $ddtanggalm.'-'.$mmtanggalm.'-'.$yyyytanggalm;
		$ftanggals = $ddtanggals.'-'.$mmtanggals.'-'.$yyyytanggals;
		$ftanggalk = $ddtanggalk.'-'.$mmtanggalk.'-'.$yyyytanggalk;
	}	
	$nomor_kontrak = array(
		'name'=>'nomor_kontrak',
		'value'=>(isset($_POST['nomor_kontrak'])? $_POST['nomor_kontrak'] : $fields['nomor_kontrak']),
		'id'=>'nomor_kontrak',
		'type'=>'textfield',
		'size'=>'35'
	);
	$form_nomor = form_dynamic($nomor_kontrak);
	$view .= form_field_display( $form_nomor  , "Nomor Kontrak"  );

	$tanggal_surat = array(
			'name'=>'tanggal_surat',
			'value'=>(isset($_POST['tanggal_surat'])? $_POST['tanggal_surat'] : $ftanggalk),
			'id'=>'tanggal_surat' 
		);
	$form_tanggal_surat = form_calendar($tanggal_surat);
	$view .= form_field_display( $form_tanggal_surat , "Tanggal Surat" );
	
	$datas = array(
		'1'=>'Pertama',
		'2'=>'Kedua',
		'3'=>'Ketiga',
	);
	$kontrak_ke = array(
		'name'=>'kontrak_ke',
		'id'=>'kontrak_ke',
		'value'=>isset($_POST['kontrak_ke']) ? $_POST['kontrak_ke'] : $fields['kontrak_ke'],
	);
	$form_kontrak_ke = form_dropdown($kontrak_ke , $datas);
	$view .= form_field_display( $form_kontrak_ke , "Kontrak Ke" );
	
	$tanggal_mulai = array(
			'name'=>'tanggal_mulai',
			'value'=>(isset($_POST['tanggal_mulai'])? $_POST['tanggal_mulai'] : $ftanggalm),
			'id'=>'tanggal_mulai' 
		);
	$form_tanggal_mulai = form_calendar($tanggal_mulai);
	$view .= form_field_display( $form_tanggal_mulai, "Tanggal mulai" );
	
	$tanggal_selesai = array(
			'name'=>'tanggal_selesai',
			'value'=>(isset($_POST['tanggal_selesai'])? $_POST['tanggal_selesai'] : $ftanggals),
			'id'=>'tanggal_selesai' 
		);
	$form_tanggal_selesai = form_calendar($tanggal_selesai);
	$view .= form_field_display( $form_tanggal_selesai , "Tanggal Selesai" );

	$karyawan_data = loaddata_karyawan(( $fields ? $fields['karyawan_id'] : 0));
	$karyawan = array(
		'name'=>'nama_karyawan',
		'value'=>(isset($_POST['nama_karyawan'])? $_POST['nama_karyawan'] : ( $fields ? $karyawan_data['nik'].'/'.$karyawan_data['nama'] :'') ),
		'id'=>'nama_karyawan',
		'type'=>'textfield',
		'size'=>'45'
	);
	$form_karyawan = form_dynamic($karyawan);
	$view .= form_field_display( $form_karyawan  , "NIK/Nama Karyawan"  );

	
	$nik_baru = array(
		'name'=>'nik_baru',
		'value'=>(isset($_POST['nik_baru'])? $_POST['nik_baru'] : '' ),
		'id'=>'nik_baru',
		'type'=>'textfield',
		'size'=>'45'
	);
	$form_nik_baru = form_dynamic($nik_baru);
	$view .= form_field_display( $form_nik_baru  , "NIK Baru"  );
	
	$jabatans = loaddata_jabatan(( $fields ? $fields['jabatan_id'] : 0));
	$jabatan = array(
			'name'=>'nama_jabatan',
			'value'=>(isset($_POST['nama_jabatan'])? $_POST['nama_jabatan'] : ( $fields ? $jabatans['nomor_posisi'].'/'.$jabatans['nama_jabatan'] :'') ),
			'id'=>'nama_jabatan',
			'type'=>'textfield',
			'size'=>'60',
			'onchange'=>'javascript:checkNameJabatan(this.value)'
		);
	$form_jabatan = form_dynamic($jabatan);
	$view .= form_field_display( $form_jabatan  , "No. Posisi/Jabatan"  );

	$goljab_id = isset( $fields['golongan_jabatan_id'] ) ? $fields['golongan_jabatan_id']:  0;
	$query = "SELECT * FROM golongan_jabatan ORDER BY kode_golongan_jabatan ASC";
	$result = my_query($query);
	$goljabs = array();
	while( $r = my_fetch_array($result) ){
		$goljabs[$r['golongan_jabatan_id']] =$r['kode_golongan_jabatan'];
	}	
	$golongan_jabatan_id = array(
		'name'=>'golongan_jabatan_id',
		'value'=>( isset($_POST['golongan_jabatan_id'] ) ? $_POST['golongan_jabatan_id'] : $goljab_id  ),
		'id'=>'golongan_jabatan_id' 
		//'onchange'=>'javascript:checkNipar();'		
	);
	$form_temp = form_dropdown($golongan_jabatan_id , $goljabs );
	$view .= form_field_display( $form_temp , "Golongan Jabatan"    );

	$grd_id = isset( $fields['grade_id'] ) ? $fields['grade_id']:  0;
	$grade_id = array(
		'name'=>'grade_id',
		'value'=>( isset($_POST['grade_id'] ) ? $_POST['grade_id'] : $grd_id  ),
		'id'=>'grade_id'  
	);

	if($fields){
		$query_grade = "SELECT grade_id FROM gol_grade 
			WHERE golongan_jabatan_id=".$goljab_id." 
			ORDER BY grade_id ASC";
		$result_grade = my_query($query_grade);
		$opsi_pilihan ='';
		while($row_grade = my_fetch_array($result_grade)){
			if($row_grade['grade_id'] == $grd_id){
				$opsi_pilihan .='<option selected value="'.$row_grade['grade_id'].'">'.$row_grade['grade_id'].'</option>';
			}else{
				$opsi_pilihan .='<option value="'.$row_grade['grade_id'].'">'.$row_grade['grade_id'].'</option>';			
			}
			//var_dump($opsi_pilihan);
			$dropdown_extends = dropdown_multi_rows_extends_dua( $golongan_jabatan_id , $grade_id , "combobox_grade.php", $opsi_pilihan);
		}
	}else{	
		$dropdown_extends = dropdown_multi_rows_extends_dua( $golongan_jabatan_id , $grade_id , "combobox_grade.php", false );
	}
	$view .= form_field_display( $dropdown_extends  , "Grade"  );  	
	
	$gaji = array(
		'name'=>'gaji',
		'value'=>( isset($_POST['gaji'] ) ? $_POST['gaji'] : rp_format($fields['gaji'] ) ),
		'id'=>'gaji' , 
		'type'=>'text',
		'size'=>'35' ,
	);
	$form_gaji= form_money($gaji );
	$view .= form_field_display( $form_gaji  , "Gaji Pokok"    );
		
	$submit = array(
		'value' => ( $id ==0 ? ' Simpan ' :'  Update  '),
		'name' => 'simpan', 
		'type'=>'submit','class'=>'main_button'
	);
	$form_submit= form_dynamic($submit); 

	$back = array(
		'value' => ' Batal  ' ,
		'name' => 'back', 'onclick'=>'location.href=\'index.php?com=kontrak\'',
		'type'=>'button','class'=>'main_button'
	);
	$form_back= form_dynamic($back); 
	$view .= form_field_display( $form_submit /*.' '. $form_back */ , "&nbsp;" ,  "" );	
	$view .= form_footer( );
	return $view;
}

function form_kontrak_submit($id = 0){
	$karyawan_id 	= check_karyawan_by_nik_nama($_POST['nama_karyawan']);
	$jabatan_id 	= check_jabatan_by_no_org($_POST['nama_jabatan']	);
	
	if($_POST){
		list($yyyytanggalm , $mmtanggalm,$ddtanggalm ) = explode("-" ,$_POST['tanggal_mulai'] );
		list($yyyytanggals , $mmtanggals,$ddtanggals ) = explode("-" ,$_POST['tanggal_selesai'] );
		list($yyyytanggalk , $mmtanggalk,$ddtanggalk ) = explode("-" ,$_POST['tanggal_surat'] );
		$ftanggalm = $ddtanggalm.'-'.$mmtanggalm.'-'.$yyyytanggalm;
		$ftanggals = $ddtanggals.'-'.$mmtanggals.'-'.$yyyytanggals;		 
		$ftanggalk = $ddtanggalk.'-'.$mmtanggalk.'-'.$yyyytanggalk;		 
	}
	$karyawan_current = my_get_data_by_id('karyawan','karyawan_id',$karyawan_id);
	$datask = array(
		 
		'biodata_id'	=>my_type_data_int($karyawan_current['biodata_id']),
		'nik'			=>my_type_data_str($_POST['nik_baru']),
		'nik_lm'		=>my_type_data_str($karyawan_current['']),
		'nik_ks'		=>my_type_data_str(''),
		'nomor_kontrak'		=>my_type_data_str($_POST['nomor_kontrak']),
		'tanggal_kontrak'	=>my_type_data_str($ftanggalm),	
		'tanggal_selesai'	=>my_type_data_str($ftanggals),
	);
	
	$karyawan_id = my_insert_record('karyawan',$datask);
	
	 
	$kekaryawanan =  my_get_data_by_id( 'kekaryawanan' , 'karyawan_id' , $karyawan_current['karyawan_id']);
	$kekaryawanan_new_datas = array( 
		'karyawan_id'	=> my_type_data_str($karyawan_id),	 	 	 	  	 	
		'tmb'	 		=> my_type_data_str($kekaryawanan['tmb']),	 	 	 	 	 	
		'tmb_lm'	 	=> my_type_data_str($kekaryawanan['tmb']),	 	 	 	 	 	 	
		'gapok_km' 		=> my_type_data_str( set_text_as_number($_POST['gaji'])), 
		'npwp'			=> my_type_data_str($kekaryawanan['npwp']),
		'jamsostek'		=> my_type_data_str($kekaryawanan['jamsostek']),
		'gapok_ks'		=> my_type_data_str( set_text_as_number( $kekaryawanan['gapok_ks'] ) ),
		'ppmp'			=> my_type_data_str( set_text_as_number( $kekaryawanan['ppmp'] ) ),
		'ppip'			=> my_type_data_str( set_text_as_number( $kekaryawanan['ppip'] ) ),
		'bank_id'		=> my_type_data_int($kekaryawanan['bank_id']),
		'grade_id'		=> my_type_data_int($_POST['grade_id']),
		'golongan_jabatan_id'	=> my_type_data_int($kekaryawanan['golongan_jabatan_id'] ),
		'norek'			=> my_type_data_str($kekaryawanan['norek']),
		'jabatan_id'	=> my_type_data_int($jabatan_id),
		'profesi_id'	=> my_type_data_int($kekaryawanan['profesi_id']),
		'profesi_detail_id'	=>my_type_data_int($kekaryawanan['profesi_detail_id']),
		'status_insentif' =>my_type_data_str($kekaryawanan['status_insentif']),
		'status_id' =>my_type_data_str(2),
		'ptkp_status' =>my_type_data_str($kekaryawanan['ptkp_status']),
		'ptkp_tanggung' =>my_type_data_str($kekaryawanan['ptkp_tanggung']),
		'kelompok_shift_id'	=>my_type_data_int($kekaryawanan['kelompok_shift_id']),
		'finger_diabaikan'=>my_type_data_str($kekaryawanan['finger_diabaikan']),	
		'premi_kesehatan'	=>my_type_data_str($kekaryawanan['premi_kesehatan']), 
	);
	my_insert_record('kekaryawanan',$kekaryawanan_new_datas);
	create_data_karyawan_json($karyawan_id);
	
	$update_history_gaji = "UPDATE pr_gaji_komponen SET karyawan_id = {$karyawan_id} WHERE karyawan_id = {$karyawan_current['karyawan_id']} ";
	
	$datas_disabled = array('karyawan_id'=>my_type_data_int($karyawan_current['karyawan_id']));
	my_insert_record(	'karyawan_disable',	$datas_disabled);
	$datas = array(
		'nomor_kontrak'		=>my_type_data_str($_POST['nomor_kontrak']),
		'tanggal_mulai'		=>my_type_data_str($ftanggalm), 
		'tanggal_selesai'	=>my_type_data_str($ftanggals), 
		'tanggal_surat'		=>my_type_data_str($ftanggalk), 
		'kontrak_ke'		=>my_type_data_int($_POST['kontrak_ke']),
		'karyawan_id'		=>my_type_data_int($karyawan_id),
		'jabatan_id'		=>my_type_data_int($jabatan_id ),
		'grade_id'			=>my_type_data_int($_POST['grade_id']),
		'golongan_jabatan_id'=> my_type_data_int($_POST['golongan_jabatan_id']),
		'gaji'				=>my_type_data_str( set_text_as_number($_POST['gaji'])),		
	);
	 
	if($id > 0){
		return my_update_record('kontrak','kontrak_id',$id,$datas);
	}
	$new_id = my_insert_record('kontrak',$datas);
	return $new_id;
}

function form_kontrak_validate($id){
	$errsubmit = false;
	$err = array();
	
	$jabatan_id 	= (int) check_jabatan_by_no_org($_POST['nama_jabatan']	);
	if($jabatan_id == 0){
		$errsubmit = true;
		$err[] = 'Jabatan tidak dikenal';
	}
	if( $errsubmit){
		return $err;
	}
	return $errsubmit;
}

function delete_kontrak($id){
	$query = "DELETE FROM kontrak WHERE kontrak_id ={$id} ";
	return my_query($query);
}	
